export const metadata = {
  title: 'iMessage',
  description:
    'Overview of Surfer Protocol iMessage platform.',
}

# iMessage

## Schema

File: `imessage-001.json`

```json
{
  "company": "Apple",
  "name": "iMessage",
  "runID": "imessage-001-1731702239127",
  "timestamp": 1731702239127,
  "content": [
    {
      "id": 349530,
      "text": "Message text",
      "timestamp": "Timestamp of message",
      "contact": "Name of contact",
      "is_from_me": true
    },
    ...
  ]
}
```

## Export Process

#### Mac:

Steps:
- The app uses the 'chat.db' file on the Mac to extract the messages, as well as the 'AddressBook-v22.abcddb' file to extract the contacts.
- The app runs SQL queries on these files to extract the messages and contacts and merge them into a single JSON file.

Files for reference:
- `imessage.ts`
- `imessage_mac.py`

#### Windows:

Steps:
- The app takes in the path of the iPhone backup file and requires a password to decrypt it.
- The app uses the `iphone_backup_decrypt` library to decrypt the backup file.
- The app runs SQL queries on the decrypted backup file to extract the messages and contacts and merge them into a single JSON file.

Files for reference:
- `imessage.ts`
- `imessage_windows.py`
